package com.sh.rbac.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.rbac.domain.dto.operationLog.OperationLogQueryDTO;
import com.sh.rbac.domain.entity.OperationLog;
import com.sh.rbac.domain.vo.operationLog.OperationLogVO;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

/**
 * @author lucky
 * @description 针对表【sys_operation_log(操作日志记录表)】的数据库操作Service
 * @createDate 2024-07-07 17:50:48
 */
public interface OperationLogService extends IService<OperationLog> {

    /**
     * 检查数据权限
     *
     * @param ids 数据ID
     */
    void checkDataScope(List<Long> ids);

    /**
     * 分页查询操作日志列表
     *
     * @param current              页码
     * @param limit                每页数量
     * @param operationLogQueryDTO 查询条件
     * @return 分页数据
     */
    Page<OperationLogVO> getPage(Long current, Long limit, OperationLogQueryDTO operationLogQueryDTO);

    /**
     * 导出操作日志数据
     *
     * @param startCount 开始索引
     * @param endCount   结束索引
     * @param response   响应对象
     */
    void exportData(Integer startCount, Integer endCount, HttpServletResponse response);
}
